package 链表与数组的相互转换;

import org.junit.Test;

import java.util.Arrays;

/**
 * @author liudingding
 * @ClassName Solution
 * @description
 * @date 2021/11/28 3:30 下午
 */
public class Solution {

    public ListNode arrayConvertNode(int[] array){
        ListNode newNode = new ListNode(0);
        ListNode tempNode = newNode;
        for (int i = 0; i < array.length; i++){
            ListNode node = new ListNode(array[i]);
            tempNode.next = node;
            tempNode = node;
        }
        return newNode.next;
    }

    public int[] nodeConvertArray(ListNode listNode){
        int[] array = new int[calculationNodeLength(listNode)];
        int index = 0;
        while (listNode != null) {
            array[index] = listNode.val;
            listNode = listNode.next;
            index++;
        }
        return array;
    }

    private int calculationNodeLength(ListNode listNode){
        int length = 0;
        while (listNode != null) {
            listNode = listNode.next;
            length++;
        }
        return length;
    }

    @Test
    public void test(){
        ListNode listNode1 = new ListNode(9);
        ListNode listNode2 = new ListNode(9);
        ListNode listNode3 = new ListNode(1);
        ListNode listNode4 = new ListNode(9);
        ListNode listNode5 = new ListNode(9);
        ListNode listNode6 = new ListNode(9);
        ListNode listNode7 = new ListNode(9);
        listNode1.next = listNode2;
        listNode2.next = listNode3;
        listNode3.next = listNode4;
        listNode4.next = listNode5;
        listNode5.next = listNode6;
        listNode6.next = listNode7;
    }

    @Test
    public void test2(){
        int[] array = {1,2,3,4};
        System.out.println(arrayConvertNode(array));
    }
}
